Skip to content

Implemented instance type - #712

Merged
ekharkunov merged 4 commits into
devfrom
issue-465-unsupported-version
Nov 13, 2025
Merged

Implemented instance type#712
ekharkunov merged 4 commits into
devfrom
issue-465-unsupported-version

Conversation

@ekharkunov

@ekharkunov ekharkunov commented Apr 24, 2025

Copy link
Copy Markdown
Contributor

Errors about unsupported engine's version or platform become more clear.

Fixes #465
Fixes #720

Technical details

  • Implemented instance type configuration.
  • Implemented handling of 'mappings not found' error.

Now it's possible to configure instance type explicitly. Depends on instance type Extender define how to handle "non-existed sdk mapping" case.

this.remoteEngineBuilder.buildAsync(remoteInstanceConfig, uploadDirectory, platform, sdkVersion, jobDirectory, buildDirectory, metricsWriter);
} else {

if (instanceType.equals(InstanceType.BUILDER_ONLY)) {

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If instance marked as "BUILDER_ONLY" - skip request for sdk mappings and start building.

try {
// sdk version was removed (dev or beta)
buildEnvDescription = ExtenderUtil.getSdksForPlatform(platform, defoldSdkService.getPlatformSdkMappings(sdkVersion));
} catch(ExtenderException exc) {

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exception happened if we can't find sdk mappings for given hash.

LOGGER.info("Building engine on remote builder");
RemoteInstanceConfig remoteInstanceConfig = getRemoteBuilderConfig(buildEnvDescription[0], buildEnvDescription[1]);
this.remoteEngineBuilder.buildAsync(remoteInstanceConfig, uploadDirectory, platform, sdkVersion, jobDirectory, buildDirectory, metricsWriter);
} else if (instanceType.equals(InstanceType.MIXED)) {

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If sdk mappings exist but there are no required sdk version defined and instance marked as "MIXED" - try build on current instance.

asyncBuilder.asyncBuildEngine(metricsWriter, platform, sdkVersion, jobDirectory, uploadDirectory, buildDirectory);
} else {
// no remote buidler was found and current instance can't build
throw new NotSupportedException("Engine version unsupported. Please, update engine to the newer version.");

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SDK mappings exists but no record for given sdk and version was found - throw error.

@ekharkunov
ekharkunov requested a review from britzl April 24, 2025 20:05
Comment thread server/src/main/java/com/defold/extender/ExtenderController.java Outdated
@ekharkunov
ekharkunov marked this pull request as draft May 1, 2025 08:36
@ekharkunov
ekharkunov marked this pull request as ready for review November 12, 2025 18:37
@ekharkunov
ekharkunov requested a review from britzl November 12, 2025 18:37
@github-actions

Copy link
Copy Markdown

Summary - Extender code coverage report

Summary
Generated on: 11/12/2025 - 18:40:01
Coverage date: 11/12/2025 - 18:39:31
Parser: JaCoCo
Assemblies: 13
Classes: 82
Files: 82
Line coverage: 30.1% (1647 of 5465)
Covered lines: 1647
Uncovered lines: 3818
Coverable lines: 5465
Total lines: 11200
Branch coverage: 33% (670 of 2027)
Covered branches: 670
Total branches: 2027
Method coverage: Feature is only available for sponsors
Tag: 69_19308088457

Coverage

com/defold/extender - 26.2%
Name Line Branch
com/defold/extender 26.2% 29.3%
com/defold/extender/AppManifestConfiguration 100%
com/defold/extender/AppManifestPlatformConfig 100%
com/defold/extender/AsyncBuilder 0% 0%
com/defold/extender/BuilderConstants 0%
com/defold/extender/Configuration 100%
com/defold/extender/Extender 11.2% 10.3%
com/defold/extender/ExtenderApplication 0%
com/defold/extender/ExtenderBuildState 63.1% 57.1%
com/defold/extender/ExtenderConst 0%
com/defold/extender/ExtenderController 19.5% 21.9%
com/defold/extender/ExtenderException 42.8%
com/defold/extender/ExtenderUtil 67.2% 57.3%
com/defold/extender/ExtenderYamlSafeConstructor 100%
com/defold/extender/ExtensionManifestValidator 69.5% 55%
com/defold/extender/ManifestConfiguration 100%
com/defold/extender/ManifestPlatformConfig 100%
com/defold/extender/PlatformConfig 100%
com/defold/extender/PlatformNotSupportedException 0%
com/defold/extender/TemplateExecutor 33.3% 50%
com/defold/extender/Timer 0%
com/defold/extender/TreePrinter 0% 0%
com/defold/extender/Version 0%
com/defold/extender/VersionNotSupportedException 0%
com/defold/extender/WebSecurityConfig 0% 0%
com/defold/extender/WhitelistConfig 100%
com/defold/extender/ZipUtils 64.9% 56.6%
com/defold/extender/builders - 0%
Name Line Branch
com/defold/extender/builders 0% 0%
com/defold/extender/builders/CSharpBuilder 0% 0%
com/defold/extender/cache - 35.4%
Name Line Branch
com/defold/extender/cache 35.4% 9.3%
com/defold/extender/cache/CacheEntry 100%
com/defold/extender/cache/CacheKeyGenerator 81.8% 100%
com/defold/extender/cache/DataCache
com/defold/extender/cache/DataCacheException 0%
com/defold/extender/cache/DataCacheFactory 0% 0%
com/defold/extender/cache/DummyDataCache 80%
com/defold/extender/cache/GCPDataCache 0% 0%
com/defold/extender/cache/LocalDiskDataCache 64.7% 16.6%
com/defold/extender/cache/info - 100%
Name Line Branch
com/defold/extender/cache/info 100% ****
com/defold/extender/cache/info/CacheInfoFileParser 100%
com/defold/extender/cache/info/CacheInfoFileWriter 100%
com/defold/extender/cache/info/CacheInfoWrapper 100%
com/defold/extender/log - 0%
Name Line Branch
com/defold/extender/log 0% 0%
com/defold/extender/log/ExtenderLogEnhancer 0% 0%
com/defold/extender/log/ExtenderLogEnhancerConfiguration 0% 0%
com/defold/extender/log/Markers 0%
com/defold/extender/metrics - 7.4%
Name Line Branch
com/defold/extender/metrics 7.4% ****
com/defold/extender/metrics/MetricsWriter 7.4%
com/defold/extender/process - 10.4%
Name Line Branch
com/defold/extender/process 10.4% 7.1%
com/defold/extender/process/ProcessExecutor 12.3% 8.8%
com/defold/extender/process/ProcessUtils 0% 0%
com/defold/extender/remote - 0%
Name Line Branch
com/defold/extender/remote 0% 0%
com/defold/extender/remote/RemoteBuildException 0%
com/defold/extender/remote/RemoteEngineBuilder 0% 0%
com/defold/extender/remote/RemoteHostConfiguration 0%
com/defold/extender/remote/RemoteInstanceConfig 0%
com/defold/extender/services - 24.2%
Name Line Branch
com/defold/extender/services 24.2% 24.3%
com/defold/extender/services/DataCacheService 0% 0%
com/defold/extender/services/DefoldSdkService 78.3% 66.6%
com/defold/extender/services/DefoldSdkServiceConfiguration
com/defold/extender/services/GCPInstanceService 0% 0%
com/defold/extender/services/GradleService 0%
com/defold/extender/services/GradleServiceInterface
com/defold/extender/services/HealthReporterService 0% 0%
com/defold/extender/services/MockGradleService 0%
com/defold/extender/services/RealGradleService 0% 0%
com/defold/extender/services/UserUpdateService 0% 0%
com/defold/extender/services/cocoapods - 50.6%
Name Line Branch
com/defold/extender/services/cocoapods 50.6% 53.3%
com/defold/extender/services/cocoapods/CocoaPodsService 2.1% 1.8%
com/defold/extender/services/cocoapods/CocoaPodsServiceBuildState 16.6% 0%
com/defold/extender/services/cocoapods/CreateBuildSpecArgs 60.7%
com/defold/extender/services/cocoapods/IConfigParser
com/defold/extender/services/cocoapods/LanguageSet 66.6% 50%
com/defold/extender/services/cocoapods/MainPodfile 20%
com/defold/extender/services/cocoapods/PlatformAndLanguageSet 0% 0%
com/defold/extender/services/cocoapods/PlatformSet 0% 0%
com/defold/extender/services/cocoapods/PlistBuddyWrapper 0% 0%
com/defold/extender/services/cocoapods/PodBuildSpec 79.7% 62.5%
com/defold/extender/services/cocoapods/PodfileParser 92.8% 81.8%
com/defold/extender/services/cocoapods/PodfileParsingException 100%
com/defold/extender/services/cocoapods/PodSpec 52% 10%
com/defold/extender/services/cocoapods/PodSpecParser 89.4% 78.7%
com/defold/extender/services/cocoapods/PodUtils 63% 51.4%
com/defold/extender/services/cocoapods/ResolvedPods 52.7% 45.6%
com/defold/extender/services/cocoapods/XCConfigParser 94.6% 88.4%
com/defold/extender/services/data - 80.7%
Name Line Branch
com/defold/extender/services/data 80.7% 75%
com/defold/extender/services/data/DefoldSdk 87.5% 75%
com/defold/extender/services/data/GCPInstanceState 0%
com/defold/extender/tracing - 0%
Name Line Branch
com/defold/extender/tracing 0% 0%
com/defold/extender/tracing/ExtenderExecutor 0% 0%
com/defold/extender/tracing/ExtenderTracerInterceptor 0% 0%
com/defold/extender/tracing/TraceIdInResponseServletFilter 0% 0%
com/defold/extender/utils - 0%
Name Line Branch
com/defold/extender/utils 0% 0%
com/defold/extender/utils/FrameworkUtil 0% 0%
com/defold/extender/utils/PodBuildUtil 0% 0%

@ekharkunov
ekharkunov merged commit b6dab53 into dev Nov 13, 2025
1 check passed
@ekharkunov
ekharkunov deleted the issue-465-unsupported-version branch November 13, 2025 08:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve error message if console builds are directed to unsupported (stage) server Improve error message when Defold sdk doesn't exist in the cloud

2 participants